<div id="copy">
<div id="sidebar">
	<hr/>
	<a href="#web-server">Web Server</a>
	<hr/>
	<a href="#setup">Server Setup</a>
	<hr/>
</div>
<div id="bodyCopy">
	<span id="floatRight"><img src="/img/cc-by-beggs-flickr-281194868.jpg" width=280px alt="Documentation"/></span>
	
	<p>Gobl is a CLI-based CMS.	 If you need WYSIWYG GUI, then do not bother trying Gobl - it has none.  Detailed technical documentation is available in <a href="http://code.google.com/p/gobl">code.google.com/p/gobl</a> -- it is a work in progress.  Below you will find the high level overview of Gobl concepts.</p>
	
	<h3 id="web-server">Web Server</h3>
	
	<p>Gobl uses the term "copy" as copy in copywriting in general sense.  Whereas the term "snippet" is used as anything that is not "copy".  Snippets are files that define the layout of the copies.  Everything is saved in "text" files except system configurations which are stored in JSON files.</p>
	
	<p>Upon starting up, Gobl web server loads everything into memory and once it is up and running, it does not read from file or disk anymore.  (It does write to disk, but only for logging.)  And since static files (e.g. images) can add up, you need to take the cumulative size into account for the memory requirement of your web server.  The process schematic looks like below.</p>
	
	<center><img src="/img/schematic.png" alt="Process schematic"/></center>
	
	<p>Gobl assembles the copy, menu, header, footer, etc into complete HTML so the browser can render it.  And then they are compressed (using Gzip) and then loaded into the memory where they will be served from.  Likewise, the static files (CSS, JS, image files, etc) are compressed and then loaded into the memory.</p>
	
	<p>You can also serve (gzipped) static HTML files directly if you put them in the static file directory, thus using Gobl as a simple-as-a-brick web server instead of as a CMS.
	</p>
	
	<h3 id="setup">Server Setup</h3>
	
	<p>Gobl comes with its own HTTP/HTTPS server, so you do not need Apache, Lighttpd, etc.  The following diagram illustrates the logical servers that can be set up. It is ONLY an illustration of possible logical servers, not the server hardware themselves.</p>
	
	<center><img src="/img/constellation.png" alt="Server constellation" width=250px height=400px /></center>
	
	<p>The "update listener" actually is part of the web server itself, but it "listens" in a different location / connection.  The log server can reside in the same server as the web server or it can reside in a completely different server (for scalability).
	</p>
	
	<p>Please consult the documentation in <a href="http://code.google.com/p/gobl">code.google.com/p/gobl</a> for details.</p>
	<br/>--<br/>
	Photo source: Fotopedia, CC-BY beggs
	
</div>
</div>
